const Router = require('koa-router')
const router = new Router()
const mongoose = require('mongoose')

router.get('/',async(ctx)=>{
    ctx.body = "用户操作首页"
})

router.post('/register',async(ctx)=>{
    console.log(ctx.request.body)

    //取得Model
    const User = mongoose.model('User');
    //把从前端接收的POST数据封装成一个新的user对象
    let newUser = new User(ctx.request.body)

    //用mongoose的save方法直接储存。然后判断是否成功返回相应的结果。
    await newUser.save().then(()=>{
        ctx.body = {
            code : 200,
            message:'注册成功'
        }
    }).catch((error)=>{
        ctx.body = {
            code:500,
            message:error
        }
    })
})

//用户验证
router.post('/login',async function(ctx){
    //得到前端传递过来的数据
    let loginUser = ctx.request.body
    // console.log(loginUser) 

    let userName = loginUser.userName
    let password = loginUser.password
    //引入User的model
    const user = mongoose.model('User')
    //查找用户名是否存在，如果存在则开始密码对比
    await user.find({userName:userName}).exec().then(async (result)=>{
        // console.log(result[0].password)
        if(result[0]){
            //如果用户名存在，开始比对密码
            let newUser = new user()
            await newUser.comparePassword(password,result[0].password)
            .then((isMathch)=>{
                console.log(isMathch)
                //返回对比结果
                ctx.body={
                    code:200,
                    message:true
                }
            })
            .catch(err=>{
                //异常
                console.log(err)
                ctx.body = {
                    code:500,
                    message:err
                }
            })
        }else{
            ctx.body = {
                code:200,
                message:'用户名不存在'
            }
        }
    })
})

module.exports = router